import { ENUM_ERROR, NumberTransOption } from "qqlx-core";

import { toNumber } from "@lib/com.verify";

export const MAP_ENUM_ERROR = new Map<ENUM_ERROR, NumberTransOption>();

MAP_ENUM_ERROR.set(ENUM_ERROR.UNEXPECT_IDENTITY, { value: ENUM_ERROR.UNEXPECT_IDENTITY, zh: "错误的标识符" });

MAP_ENUM_ERROR.set(ENUM_ERROR.AUTHORIZATION_NONE, { value: ENUM_ERROR.AUTHORIZATION_NONE, zh: "未检测到登录信息" });
MAP_ENUM_ERROR.set(ENUM_ERROR.AUTHORIZATION_BELOW, { value: ENUM_ERROR.AUTHORIZATION_BELOW, zh: "身份认证已过期" });
MAP_ENUM_ERROR.set(ENUM_ERROR.AUTHORIZATION_REPEAT, { value: ENUM_ERROR.AUTHORIZATION_REPEAT, zh: "检测到异地登录" });

MAP_ENUM_ERROR.set(ENUM_ERROR.DROIT_BELOW, { value: ENUM_ERROR.DROIT_BELOW, zh: "仅允许管理员操作" });
MAP_ENUM_ERROR.set(ENUM_ERROR.DROIT_BELOW_QUERY, {
  value: ENUM_ERROR.DROIT_BELOW_QUERY,
  zh: "缺少查询权限，请联系管理员",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.DROIT_BELOW_CREATE, {
  value: ENUM_ERROR.DROIT_BELOW_CREATE,
  zh: "缺少添加权限，请联系管理员",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.DROIT_BELOW_UPDATE, {
  value: ENUM_ERROR.DROIT_BELOW_UPDATE,
  zh: "缺少修改权限，请联系管理员",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.DROIT_BELOW_DELETE, {
  value: ENUM_ERROR.DROIT_BELOW_DELETE,
  zh: "缺少删除权限，请联系管理员",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.DROIT_BELOW_DOWNLOAD, {
  value: ENUM_ERROR.DROIT_BELOW_DOWNLOAD,
  zh: "缺少下载权限，请联系管理员",
});

MAP_ENUM_ERROR.set(ENUM_ERROR.ACCOUNT_TYPE_UNKNOW, {
  value: ENUM_ERROR.ACCOUNT_TYPE_UNKNOW,
  zh: "账号类型异常，请联系管理员",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.ACCOUNT_DISLOCATION, {
  value: ENUM_ERROR.ACCOUNT_DISLOCATION,
  zh: "检测到权限外的数据",
});

MAP_ENUM_ERROR.set(ENUM_ERROR.MARKET_SCHEDULE_BELOW, {
  value: ENUM_ERROR.MARKET_SCHEDULE_BELOW,
  zh: "剩余可用时间已不足",
});

MAP_ENUM_ERROR.set(ENUM_ERROR.NOT_FOUND_ENTITY, {
  value: ENUM_ERROR.NOT_FOUND_ENTITY,
  zh: "找不到这条数据",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.NOT_FOUND_USER, {
  value: ENUM_ERROR.NOT_FOUND_USER,
  zh: "找不到此用户",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.NOT_FOUND_ACCESS, {
  value: ENUM_ERROR.NOT_FOUND_ACCESS,
  zh: "您没有数据权限，请联系管理员",
});

MAP_ENUM_ERROR.set(ENUM_ERROR.UNKNOWN, {
  value: ENUM_ERROR.UNKNOWN,
  zh: "服务器繁忙，请等待几秒钟",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.REMOTE_BUSY_WECHAT, {
  value: ENUM_ERROR.REMOTE_BUSY_WECHAT,
  zh: "远程系统未响应（微信）请等待几秒钟",
});
MAP_ENUM_ERROR.set(ENUM_ERROR.REMOTE_MESS_WECHAT, {
  value: ENUM_ERROR.REMOTE_MESS_WECHAT,
  zh: "不理想的返回值（微信）请等待几秒钟",
});

export function getErrorTrans(code: ENUM_ERROR) {
  return MAP_ENUM_ERROR.get(toNumber(code));
}
